#ifndef DSPSIMULATOR_SAVEANDRESTORE_H
#define DSPSIMULATOR_SAVEANDRESTORE_H

#include <vector>
#include <simulator/command/command.h>
#include <dspSimulator/command/snapshot.h>

class SaveAndRestoreCommand : public Command {
private:
    std::vector<std::shared_ptr<Snapshot>> m_snapshots;
public:
    explicit SaveAndRestoreCommand(Simulator *dspSimulator) :
            Command(dspSimulator) {}

    ~SaveAndRestoreCommand() override = default;

    static std::shared_ptr<SaveAndRestoreCommand> get(Simulator *dspSimulator);

    void execute(std::string command) override;
};

#endif //DSPSIMULATOR_SAVEANDRESTORE_H
